package online.longzipeng.controller;

import online.longzipeng.enums.BaseEnum;
import online.longzipeng.enums.CheckStatusEnum;
import online.longzipeng.enums.OptionTypeEnum;
import online.longzipeng.enums.UserStatusEnum;
import online.longzipeng.pojo.vo.OptionVo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * @Author: lzp
 * @description:
 * @Date: 2022/9/30
 */
@RestController
@RequestMapping("/open")
public class OpenController {

	/**
	 * 获取到所有的选项类型对应
	 */
	@GetMapping("/get/option/type")
	public List<OptionVo<Integer>> getOptionsType() {
		return BaseEnum.getOptions(OptionTypeEnum.class);
	}


	/**
	 * 通过选项类型获取对应的选项
	 */
	@GetMapping("/get/options/by/type")
	public List<OptionVo<Integer>> getOptionsByType(Integer optionType) {
		BaseEnum baseEnum = BaseEnum.valueOf(OptionTypeEnum.class, optionType);
		if (baseEnum != null) {
			OptionTypeEnum optionTypeEnum = (OptionTypeEnum) baseEnum;
			return BaseEnum.getOptions(optionTypeEnum.getEnumClass());
		}
//		if (optionType == 1) {
//			return BaseEnum.getOptions(CheckStatusEnum.class);
//		}else {
//			return BaseEnum.getOptions(UserStatusEnum.class);
//		}
		return null;
	}

	/**
	 * 获取审核状态的选项列表
	 */
	@GetMapping("/get/check/status/options")
	public List<OptionVo<Integer>> getCheckStatusOptions(Integer optionType) {
		return BaseEnum.getOptions(CheckStatusEnum.class);
	}

	/**
	 * 获取用户状态的选项列表
	 */
	@GetMapping("/get/user/status/options")
	public List<OptionVo<Integer>> getUserStatusOptions() {
		return BaseEnum.getOptions(UserStatusEnum.class);
	}

}
